package br.com.gip.business.impl;

import java.util.List;

import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import br.com.gip.business.UsuarioBusiness;
import br.com.gip.repository.dao.PerfilAcessoDao;
import br.com.gip.repository.dao.UsuarioDao;
import br.com.gip.repository.model.Artefato;
import br.com.gip.repository.model.PerfilAcesso;
import br.com.gip.repository.model.Usuario;

@Service
public class UsuarioBusinessImpl implements UsuarioBusiness {

	private static final long serialVersionUID = 5967542738718895994L;

	@Autowired
	private UsuarioDao usuarioDao;

	@Autowired
	private PerfilAcessoDao perfilAcessoDao;
	
	@Override
	public List<PerfilAcesso> buscarPerfisAcesso() {
		return this.perfilAcessoDao.findAll();
	}

	@Override
	public void salvarUsuario(Usuario usuario) {
		this.usuarioDao.saveOrUpdate(usuario);
	}

	@Override
	public List<Usuario> buscarUsuarios() {
		return this.usuarioDao.findAll();
	}

	@Override
	public void reomoverUsuario(Usuario usuario) {
		this.usuarioDao.delete(usuario);
	}

	@Override
	public Usuario efetuarLogin(String login, String senha) {
		Usuario usuario = this.usuarioDao.findByLogin(login);
		
		if (usuario != null && !StringUtils.equals(usuario.getPassword(), senha)) {
			usuario = null;
		}
		
		return usuario;
	}
	
	@Override
	public List<Usuario> buscarUsuario(String nome, Long departamentoId, Long cargoId) {
		return this.usuarioDao.findByFilter(nome, departamentoId, cargoId);
	}
	
}
